package com.imooc.pan.server.modules.file.service;

import com.imooc.pan.server.modules.file.context.FileChunkMergeAndSaveContext;
import com.imooc.pan.server.modules.file.context.FileSaveContext;
import com.imooc.pan.server.modules.file.entity.RPanFile;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * @author lenovo
 * @description 针对表【r_pan_file(物理文件信息表)】的数据库操作Service
 * @createDate 2023-07-27 18:36:52
 */
public interface IFileService extends IService<RPanFile> {

    /**
     * 上传单文件并保存实体记录
     * 1. 上传单文件
     * 2. 上下文保存实体记录，生成 RPanFile 对象并记录到数据库中，如果记录失败，上传的单文件也要删除
     *
     * @param context FileSaveContext
     */
    void saveFile(FileSaveContext context);

    /**
     * 合并物理文件并保存物理记录
     *
     * @param fileChunkMergeAndSaveContext
     */
    void mergeFileChunkAndSaveFile(FileChunkMergeAndSaveContext fileChunkMergeAndSaveContext);
}
